Systems and methods for displaying an animation to confirm designation of an image for sharing

ABSTRACT

Techniques to allow for ease of use of a photo browsing interface of a social networking system. In an embodiment, a designation of a first image for sharing is received from within a view. A first animation indicating that the first image has been designated for sharing is displayed. The displaying may comprise miniaturizing a copy of the first image. The miniaturizing may proceed from a first location within the view to a second location within the view. The first location may be associated with at least one of a center of the view and an option to designate the first image for sharing. The second location may be associated with a message compose option.

FIELD OF THE INVENTION

The present invention relates to the field of social networking. Moreparticularly, the present invention provides a technique for displayingan animation to confirm a designation of an image for sharing in asocial networking system.

BACKGROUND

Internet social networks have become a significant phenomenon. Socialnetworks allow an internet user to create an account and a user profile,often for free, and interact with other users of the social network. Asocial network user can gain access to the profile of another user byrequesting to add him or her as a friend. Once approved, the“friendship” typically gives both users access to each other's profilesand the content posted on them. Friends' posts may appear as newsstories in each other's news feeds, and friends can usually comment oneach other's news stories. Social network users typically seek toassemble a group of friends or followers with whom they interact. Often,most information on a user's profile is only accessible to the user'sfriends.

Social networks are providing users with increasingly sophisticatedfunctionality. Early social networks offered little more than a simpleinterface for users to communicate and post messages. Now, on manysocial networks, users may share numerous different types of content andinteract with each other's content in a variety of ways. Content sharedon a social network may include digital media such as images. Users mayassemble albums that include photographs and other content and sharetheir albums with their friends. Because of their collaborative nature,social networks have now become a popular means by which many peopleshare photos and other media content.

In addition, as technology has evolved, social networks have introducedtools for accessing social networking systems from a growing variety oftechnology platforms. Initially, because most users accessed theInternet exclusively from desktop computers, user interfaces of socialnetworking systems were designed with desktop web browsers in mind.However, the exponential growth of mobile computing has facilitatedInternet access from a variety of different devices and platforms.Because each technology platform has different technical capabilitiesand limitations, interfaces of social networks customized for aparticular platform are needed.

SUMMARY

To allow for ease of use of a photo browsing interface of a socialnetworking system, embodiments of the invention include systems,methods, and computer readable media to facilitate displaying ananimation to confirm a designation of an image for sharing in a socialnetworking system. A designation of a first image for sharing isreceived from within a view. A first animation indicating that the firstimage has been designated for sharing is displayed.

In an embodiment, the displaying may comprise miniaturizing a copy ofthe first image. The miniaturizing may proceed from a first locationwithin the view to a second location within the view. The first locationmay be associated with at least one of a center of the view and anoption to designate the first image for sharing. The second location maybe associated with a message compose option.

In an embodiment, the view may be a single-image view. The single-imageview may be a gallery view. The view may be a multi-image view. Themulti-image view may be a thumbnail view. A reference indicative of anumber of images designated for sharing may be displayed. A number fordisplay when an additional image is designated for sharing may beincremented.

In an embodiment, a designation of a second image may be received. Asecond animation indicating that the second image has been designatedfor sharing may be displayed.

In an embodiment, the first image may be received from a camera.Receiving the designation of the first image for sharing may be based ona user selection of a check mark option. Receiving the designation ofthe first image for sharing may be based on a user selection of a shareshutter option. Receiving the designation of the first image for sharingmay be based on an input to a touchscreen. Receiving the designation ofthe first image for sharing may be based on a voice command.

Many other features and embodiments of the invention will be apparentfrom the accompanying drawings and from the following detaileddescription.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a network diagram of a system for selecting multipleimages within a user interface of a social networking system inaccordance with an embodiment of the invention.

FIG. 2A illustrates a user of a social networking system copying to hiscomputer a photograph taken with his digital camera in accordance withan embodiment of the invention.

FIG. 2B illustrates the user accessing a user interface to upload thephotograph to the social networking system in accordance with anembodiment of the invention.

FIG. 2C illustrates the photograph uploaded to the social networkingsystem and displayed within a user interface in accordance with anembodiment of the invention.

FIG. 2D illustrates the user applying a number of edits to thephotograph, resulting in an altered photograph in accordance with anembodiment of the invention.

FIG. 3A illustrates a camera view within an interface of a cameraapplication on a mobile device in accordance with an embodiment of theinvention.

FIG. 3B illustrates a gallery view within the interface of the cameraapplication on the mobile device in accordance with an embodiment of theinvention.

FIG. 3C illustrates a message compose view within the interface of asocial networking application on the mobile device in accordance with anembodiment of the invention.

FIG. 4A illustrates a home screen view within an interface of the socialnetworking application on a mobile device in accordance with anembodiment of the invention.

FIG. 4B illustrates a camera view within the interface of the socialnetworking application on the mobile device in accordance with anembodiment of the invention.

FIG. 4C illustrates a message compose view within the interface of thesocial networking application on the mobile device in accordance with anembodiment of the invention.

FIG. 5A illustrates a gallery view within an interface of the socialnetworking application on a mobile device in accordance with anembodiment of the invention.

FIG. 5B illustrates a thumbnail view within the interface of the socialnetworking application on the mobile device in accordance with anembodiment of the invention.

FIG. 5C illustrates a message compose view within the interface of thesocial networking application on the mobile device in accordance with anembodiment of the invention.

FIG. 6 illustrates a process for selecting multiple images in accordancewith an embodiment of the invention.

FIG. 7A illustrates a camera view within an interface of the socialnetworking application on a mobile device in accordance with anembodiment of the invention.

FIG. 7B illustrates a gallery view within the interface of the socialnetworking application on a mobile device in accordance with anembodiment of the invention.

FIG. 7C illustrates a thumbnail view within the interface of the socialnetworking application on a mobile device in accordance with anembodiment of the invention.

FIG. 7D illustrates a miniaturization effect in a gallery view within aninterface of the social networking application on a mobile device inaccordance with an embodiment of the invention.

FIG. 8 illustrates a process for displaying an animation to indicate auser designation of an image for sharing.

FIG. 9 illustrates an example of a computer system that may be used toimplement one or more of the embodiments described herein.

The figures depict various embodiments of the present invention forpurposes of illustration only, wherein the figures use like referencenumerals to identify like elements. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated in the figures may be employedwithout departing from the principles of the invention described herein.

DETAILED DESCRIPTION Social Networking System—General Introduction

FIG. 1 is a network diagram of a system 100 for displaying an animationto confirm a designation of an image for sharing in a social networkingsystem in accordance with an embodiment of the invention. The system 100includes one or more user devices 110, one or more external systems 120,a social networking system 130, and a network 152. For purposes ofillustration, the embodiment of the system 100, shown by FIG. 1,includes a single external system 120 and a single user device 110.However, in other embodiments, the system 100 may include more userdevices 110 and/or more external systems 120. In certain embodiments,the social networking system 130 is operated by a social networkprovider, whereas the external systems 120 are separate from the socialnetworking system 130 in that they may be operated by differententities. In various embodiments, however, the social networking system130 and the external systems 120 operate in conjunction to providesocial networking services to users (or members) of the socialnetworking system 130. In this sense, the social networking system 130provides a platform or backbone, which other systems, such as externalsystems 120, may use to provide social networking services andfunctionalities to users across the Internet.

The user device 110 comprises one or more computing devices that canreceive input from a user and transmit and receive data via the network152. In one embodiment, the user device 110 is a conventional computersystem executing, for example, a Microsoft Windows compatible operatingsystem (OS), Apple OS X, and/or a Linux distribution. In anotherembodiment, the user device 110 can be a device having computerfunctionality, such as a smart-phone, a tablet, a personal digitalassistant (PDA), a mobile telephone, etc. The user device 110 isconfigured to communicate via the network 152. The user device 110 canexecute an application, for example, a browser application that allows auser of the user device 110 to interact with the social networkingsystem 130. In another embodiment, the user device 110 interacts withthe social networking system 130 through an application programminginterface (API) provided by the native operating system of the userdevice 110, such as iOS and ANDROID. The user device 110 is configuredto communicate with the external system 120 and the social networkingsystem 130 via the network 152, which may comprise any combination oflocal area and/or wide area networks, using wired and/or wirelesscommunication systems.

In one embodiment, the network 152 uses standard communicationstechnologies and protocols. Thus, the network 152 can include linksusing technologies such as Ethernet, 802.11, worldwide interoperabilityfor microwave access (WiMAX), 3G, 4G, CDMA, GSM, LTE, digital subscriberline (DSL), etc. Similarly, the networking protocols used on the network152 can include multiprotocol label switching (MPLS), transmissioncontrol protocol/Internet protocol (TCP/IP), User Datagram Protocol(UDP), hypertext transport protocol (HTTP), simple mail transferprotocol (SMTP), file transfer protocol (FTP), and the like. The dataexchanged over the network 152 can be represented using technologiesand/or formats including hypertext markup language (HTML) and extensiblemarkup language (XML). In addition, all or some links can be encryptedusing conventional encryption technologies such as secure sockets layer(SSL), transport layer security (TLS), and Internet Protocol security(IPsec).

In one embodiment, the user device 110 may display content from theexternal system 120 and/or from the social networking system 130 byprocessing a markup language document 114 received from the externalsystem 120 and from the social networking system 130 using a browserapplication 112. The markup language document 114 identifies content andone or more instructions describing formatting or presentation of thecontent. By executing the instructions included in the markup languagedocument 114, the browser application 112 displays the identifiedcontent using the format or presentation described by the markuplanguage document 114. For example, the markup language document 114includes instructions for generating and displaying a web page havingmultiple frames that include text and/or image data retrieved from theexternal system 120 and the social networking system 130. In variousembodiments, the markup language document 114 comprises a data fileincluding extensible markup language (XML) data, extensible hypertextmarkup language (XHTML) data, or other markup language data.Additionally, the markup language document 114 may include JavaScriptObject Notation (JSON) data, JSON with padding (JSONP), and JavaScriptdata to facilitate data-interchange between the external system 120 andthe user device 110. The browser application 112 on the user device 110may use a JavaScript compiler to decode the markup language document114.

The markup language document 114 may also include, or link to,applications or application frameworks such as FLASH™ or Unity™applications, the SilverLight™ application framework, etc.

In one embodiment, the user device 110 also includes one or more cookies116 including data indicating whether a user of the user device 110 islogged into the social networking system 130, which may enablecustomization of the data communicated from the social networking system130 to the user device 110. In one embodiment, the user device 110 alsoincludes an image processing module 118, a camera 124, and a storagemodule 126.

The external system 120 includes one or more web servers that includeone or more web pages 122 a, 122 b, which are communicated to the userdevice 110 using the network 152. The external system 120 is separatefrom the social networking system 130. For example, the external system120 is associated with a first domain, while the social networkingsystem 130 is associated with a separate social networking domain. Webpages 122 a, 122 b, included in the external system 120, comprise markuplanguage documents 114 identifying content and including instructionsspecifying formatting or presentation of the identified content.

The social networking system 130 includes one or more computing devicesfor a social network, including a plurality of users, and providingusers of the social network with the ability to communicate and interactwith other users of the social network. In some instances, the socialnetwork can be represented by a graph, i.e., a data structure includingedges and nodes. Other data structures can also be used to represent thesocial network, including but not limited to databases, objects,classes, meta elements, files, or any other data structure.

Users may join the social networking system 130 and then add connectionsto any number of other users of the social networking system 130 to whomthey desire to be connected. As used herein, the term “friend” refers toany other user of the social networking system 130 to whom a user hasformed a connection, association, or relationship via the socialnetworking system 130. For example, in an embodiment, if users in thesocial networking system 130 are represented as nodes in the socialgraph, the term “friend” can refer to an edge formed between anddirectly connecting two user nodes.

Connections may be added explicitly by a user or may be automaticallycreated by the social networking system 130 based on commoncharacteristics of the users (e.g., users who are alumni of the sameeducational institution). For example, a first user specifically selectsa particular other user to be a friend. Connections in the socialnetworking system 130 are usually in both directions, but need not be,so the terms “user” and “friend” depend on the frame of reference.Connections between users of the social networking system 130 areusually bilateral (“two-way”), or “mutual,” but connections may also beunilateral, or “one-way.” For example, if Bob and Joe are both users ofthe social networking system 130 and connected to each other, Bob andJoe are each other's connections. If, on the other hand, Bob wishes toconnect to Joe to view data communicated to the social networking system130 by Joe, but Joe does not wish to form a mutual connection, aunilateral connection may be established. The connection between usersmay be a direct connection; however, some embodiments of the socialnetworking system 130 allow the connection to be indirect via one ormore levels of connections or degrees of separation.

In addition to establishing and maintaining connections between usersand allowing interactions between users, the social networking system130 provides users with the ability to take actions on various types ofitems supported by the social networking system 130. These items mayinclude groups or networks (i.e., social networks of people, entities,and concepts) to which users of the social networking system 130 maybelong, events or calendar entries in which a user might be interested,computer-based applications that a user may use via the socialnetworking system 130, transactions that allow users to buy or sellitems via services provided by or through the social networking system130, and interactions with advertisements that a user may perform on oroff the social networking system 130. These are just a few examples ofthe items upon which a user may act on the social networking system 130,and many others are possible. A user may interact with anything that iscapable of being represented in the social networking system 130 or inthe external system 120, separate from the social networking system 130,or coupled to the social networking system 130 via the network 152.

The social networking system 130 is also capable of linking a variety ofentities. For example, the social networking system 130 enables users tointeract with each other as well as the external systems 120 or otherentities through an API, a web service, or other communication channels.The social networking system 130 generates and maintains the “socialgraph” comprising a plurality of nodes interconnected by a plurality ofedges. Each node in the social graph may represent an entity that canact on another node and/or that can be acted on by another node. Thesocial graph may include various types of nodes. Examples of types ofnodes include users, non-person entities, content items, web pages,groups, activities, messages, concepts, and any other things that can berepresented by an object in the social networking system 130. An edgebetween two nodes in the social graph may represent a particular kind ofconnection, or association, between the two nodes, which may result fromnode relationships or from an action that was performed by one of thenodes on the other node. In some cases, the edges between nodes can beweighted. The weight of an edge can represent an attribute associatedwith the edge, such as a strength of the connection or associationbetween nodes. Different types of edges can be provided with differentweights. For example, an edge created when one user “likes” another usermay be given one weight, while an edge created when a user befriendsanother user may be given a different weight.

As an example, when a first user identifies a second user as a friend,an edge in the social graph is generated connecting a node representingthe first user and a second node representing the second user. Asvarious nodes relate or interact with each other, the social networkingsystem 130 modifies edges connecting the various nodes to reflect therelationships and interactions.

The social networking system 130 also includes user-generated content,which enhances a user's interactions with the social networking system130. User-generated content may include anything a user can add, upload,send, or “post” to the social networking system 130. For example, a usercommunicates posts to the social networking system 130 from a userdevice 110. Posts may include data such as status updates or othertextual data, location information, images such as photos, videos,links, music or other similar data and/or media. Content may also beadded to the social networking system 130 by a third-party. Content“items” are represented as objects in the social networking system 130.In this way, users of the social networking system 130 are encouraged tocommunicate with each other by posting text and content items of varioustypes of media through various communication channels. Suchcommunication increases the interaction of users with each other andincreases the frequency with which users interact with the socialnetworking system 130.

The social networking system 130 includes a web server 132, an APIrequest server 134, a user profile store 136, a connection store 138, anaction logger 140, an activity log 142, an authorization server 144, andan image processing module 146. In an embodiment of the invention, thesocial networking system 130 may include additional, fewer, or differentcomponents for various applications. Other components, such as networkinterfaces, security mechanisms, load balancers, failover servers,management and network operations consoles, and the like are not shownso as to not obscure the details of the system.

The user profile store 136 maintains information about user accounts,including biographic, demographic, and other types of descriptiveinformation, such as work experience, educational history, hobbies orpreferences, location, and the like that has been declared by users orinferred by the social networking system 130. This information is storedin the user profile store 136 such that each user is uniquelyidentified. The social networking system 130 also stores data describingone or more connections between different users in the connection store138. The connection information may indicate users who have similar orcommon work experience, group memberships, hobbies, or educationalhistory. Additionally, the social networking system 130 includesuser-defined connections between different users, allowing users tospecify their relationships with other users. For example, user-definedconnections allow users to generate relationships with other users thatparallel the users' real-life relationships, such as friends,co-workers, partners, and so forth. Users may select from predefinedtypes of connections, or define their own connection types as needed.Connections with other nodes in the social networking system 130, suchas non-person entities, buckets, cluster centers, images, interests,pages, external systems, concepts, and the like are also stored in theconnection store 138.

The social networking system 130 maintains data about objects with whicha user may interact. To maintain this data, the user profile store 136and the connection store 138 store instances of the corresponding typeof objects maintained by the social networking system 130. Each objecttype has information fields that are suitable for storing informationappropriate to the type of object. For example, the user profile store136 contains data structures with fields suitable for describing auser's account and information related to a user's account. When a newobject of a particular type is created, the social networking system 130initializes a new data structure of the corresponding type, assigns aunique object identifier to it, and begins to add data to the object asneeded. This might occur, for example, when a user becomes a user of thesocial networking system 130, the social networking system 130 generatesa new instance of a user profile in the user profile store 136, assignsa unique identifier to the user account, and begins to populate thefields of the user account with information provided by the user.

The connection store 138 includes data structures suitable fordescribing a user's connections to other users, connections to externalsystems 120 or connections to other entities. The connection store 138may also associate a connection type with a user's connections, whichmay be used in conjunction with the user's privacy setting to regulateaccess to information about the user. In an embodiment of the invention,the user profile store 136 and the connection store 138 may beimplemented as a federated database.

Data stored in the connection store 138, the user profile store 136, andthe activity log 142 enables the social networking system 130 togenerate the social graph that uses nodes to identify various objectsand edges connecting nodes to identify relationships between differentobjects. For example, if a first user establishes a connection with asecond user in the social networking system 130, user accounts of thefirst user and the second user from the user profile store 136 may actas nodes in the social graph. The connection between the first user andthe second user stored by the connection store 138 is an edge betweenthe nodes associated with the first user and the second user. Continuingthis example, the second user may then send the first user a messagewithin the social networking system 130. The action of sending themessage, which may be stored, is another edge between the two nodes inthe social graph representing the first user and the second user.Additionally, the message itself may be identified and included in thesocial graph as another node connected to the nodes representing thefirst user and the second user.

In another example, a first user may tag a second user in an image thatis maintained by the social networking system 130 (or, alternatively, inan image maintained by another system outside of the social networkingsystem 130). The image may itself be represented as a node in the socialnetworking system 130. This tagging action may create edges between thefirst user and the second user as well as create an edge between each ofthe users and the image, which is also a node in the social graph. Inyet another example, if a user confirms attending an event, the user andthe event are nodes obtained from the user profile store 136, where theattendance of the event is an edge between the nodes that may beretrieved from the activity log 142. By generating and maintaining thesocial graph, the social networking system 130 includes data describingmany different types of objects and the interactions and connectionsamong those objects, providing a rich source of socially relevantinformation.

The web server 132 links the social networking system 130 to one or moreuser devices 110 and/or one or more external systems 120 via the network152. The web server 132 serves web pages, as well as other web-relatedcontent, such as Java, JavaScript, Flash, XML, and so forth. The webserver 132 may include a mail server or other messaging functionalityfor receiving and routing messages between the social networking system130 and one or more user devices 110. The messages can be instantmessages, queued messages (e.g., email), text and SMS messages, or anyother suitable messaging format.

The API request server 134 allows one or more external systems 120 anduser devices 110 to call access information from the social networkingsystem 130 by calling one or more API functions. The API request server134 may also allow external systems 120 to send information to thesocial networking system 130 by calling APIs. The external system 120,in one embodiment, sends an API request to the social networking system130 via the network 152, and the API request server 134 receives the APIrequest. The API request server 134 processes the request by calling anAPI associated with the API request to generate an appropriate response,which the API request server 134 communicates to the external system 120via the network 152. For example, responsive to an API request, the APIrequest server 134 collects data associated with a user, such as theuser's connections that have logged into the external system 120, andcommunicates the collected data to the external system 120. In anotherembodiment, the user device 110 communicates with the social networkingsystem 130 via APIs in the same manner as external systems 120.

The action logger 140 is capable of receiving communications from theweb server 132 about user actions on and/or off the social networkingsystem 130. The action logger 140 populates the activity log 142 withinformation about user actions, enabling the social networking system130 to discover various actions taken by its users within the socialnetworking system 130 and outside of the social networking system 130.Any action that a particular user takes with respect to another node onthe social networking system 130 may be associated with each user'saccount, through information maintained in the activity log 142 or in asimilar database or other data repository. Examples of actions taken bya user within the social networking system 130 that are identified andstored may include, for example, adding a connection to another user,sending a message to another user, reading a message from another user,viewing content associated with another user, attending an event postedby another user, posting an image, attempting to post an image, or otheractions interacting with another user or another object. When a usertakes an action within the social networking system 130, the action isrecorded in the activity log 142. In one embodiment, the socialnetworking system 130 maintains the activity log 142 as a database ofentries. When an action is taken within the social networking system130, an entry for the action is added to the activity log 142. Theactivity log 142 may be referred to as an action log.

Additionally, user actions may be associated with concepts and actionsthat occur within an entity outside of the social networking system 130,such as an external system 120 that is separate from the socialnetworking system 130. For example, the action logger 140 may receivedata describing a user's interaction with an external system 120 fromthe web server 132. In this example, the external system 120 reports auser's interaction according to structured actions and objects in thesocial graph.

Other examples of actions where a user interacts with an external system120 include a user expressing an interest in an external system 120 oranother entity, a user posting a comment to the social networking system130 that discusses an external system 120 or a web page 122 a within theexternal system 120, a user posting to the social networking system 130a Uniform Resource Locator (URL) or other identifier associated with anexternal system 120, a user attending an event associated with anexternal system 120, or any other action by a user that is related to anexternal system 120. Thus, the activity log 142 may include actionsdescribing interactions between a user of the social networking system130 and an external system 120 that is separate from the socialnetworking system 130.

The authorization server 144 enforces one or more privacy settings ofthe users of the social networking system 130. A privacy setting of auser determines how particular information associated with a user can beshared. The privacy setting comprises the specification of particularinformation associated with a user and the specification of the entityor entities with whom the information can be shared. Examples ofentities with which information can be shared may include other users,applications, external systems 120, or any entity that can potentiallyaccess the information. The information that can be shared by a usercomprises user account information, such as profile photos, phonenumbers associated with the user, user's connections, actions taken bythe user such as adding a connection, changing user profile information,and the like.

The privacy setting specification may be provided at different levels ofgranularity. For example, the privacy setting may identify specificinformation to be shared with other users; the privacy settingidentifies a work phone number or a specific set of related information,such as, personal information including profile photo, home phonenumber, and status. Alternatively, the privacy setting may apply to allthe information associated with the user. The specification of the setof entities that can access particular information can also be specifiedat various levels of granularity. Various sets of entities with whichinformation can be shared may include, for example, all friends of theuser, all friends of friends, all applications, or all external systems120. One embodiment allows the specification of the set of entities tocomprise an enumeration of entities. For example, the user may provide alist of external systems 120 that are allowed to access certaininformation. Another embodiment allows the specification to comprise aset of entities along with exceptions that are not allowed to access theinformation. For example, a user may allow all external systems 120 toaccess the user's work information, but specify a list of externalsystems 120 that are not allowed to access the work information. Certainembodiments call the list of exceptions that are not allowed to accesscertain information a “block list”. External systems 120 belonging to ablock list specified by a user are blocked from accessing theinformation specified in the privacy setting. Various combinations ofgranularity of specification of information, and granularity ofspecification of entities, with which information is shared arepossible. For example, all personal information may be shared withfriends whereas all work information may be shared with friends offriends.

The authorization server 144 contains logic to determine if certaininformation associated with a user can be accessed by a user's friends,external systems 120, and/or other applications and entities. Theexternal system 120 may need authorization from the authorization server144 to access the user's more private and sensitive information, such asthe user's work phone number. Based on the user's privacy settings, theauthorization server 144 determines if another user, the external system120, an application, or another entity is allowed to access informationassociated with the user, including information about actions taken bythe user.

The image processing module 146 of the social networking system 130 andthe image processing module 118 of the user device 110 provide imagemanagement capabilities. In an embodiment, the image processing module118 receives images captured by a camera 124 within the user device 110or provided to the user device 110 from another source. The images maybe saved to a storage module 126 within the user device 110. A userinput applied to the user device 110 may cause an image saved in thestorage module 126 to be designated for sharing and added to a draftmessage. The user input may further cause an animation to be displayedconfirming that the image has been designated for sharing and added tothe draft message. The functionality of displaying the animation isdescribed in further detail below.

Animation to Confirm Designation of an Image for Sharing

Users may take advantage of the collaborative features and functionalityof the social networking system 130 to upload and share digital images.A user of the social networking system 130 may upload a profile picturethat features prominently on her profile and identifies her to friendsand other users. A user may also upload a cover image that may bedisplayed as a banner across the top of the user's profile. In additionto a profile picture and a cover image, a user may upload images toshare with other users, such as photographs of an event, artwork,professional photography portfolios, photos from nature, or any othertype of digital images.

FIGS. 2A-2D illustrate online photo sharing functionality of the socialnetworking system 130 in accordance with an embodiment of the invention.In FIG. 2A, user Brady Carr has copied to his computer 201 a photograph202 taken with his digital camera 203. In FIG. 2B, Brady Carr hasaccessed a user interface 204 to upload the photograph 202 to the socialnetworking system 130. Brady Carr selects an upload option 205 withinthe user interface 204 that prompts him to browse to the location of thephotograph 202 on the local storage of his computer 201. He finds thephotograph 202 and selects the ‘OK’ option 206. In FIG. 2C, thephotograph 202 has been uploaded to the social networking system 130 andis displayed within the user interface 204. The user interface 204 inFIG. 2C includes a photo editing panel 207 with an options toolbar 208.In FIG. 2D, Brady Carr has applied a number of edits to the photograph202, resulting in the altered photograph 209. These edits include a 90degree rotation, indicated by the ‘rotate’ button 210, a crop, indicatedby the ‘crop’ button 211, and a blur, indicated by the ‘blur’ button212. Brady Carr may finalize and submit these edits by selecting a‘Save’ option.

With the advent of mobile devices that include built-in cameras andconnect to wireless data networks, photo sharing has become anincreasingly prominent feature of social networking systems. In FIGS.2A-2D, Brady Carr has shared the photograph 202 by capturing thephotograph 202 with the digital camera 203, transferring the photograph202 from the digital camera 203 to the computer 201 using a wiredconnection, and uploading the photograph 202 from the computer 201 tothe social networking system 130. However, camera-enabled mobile deviceshave made the process of sharing a photograph easier. An operator of thesocial networking system 130 may provide a social networking applicationfor the mobile device that allows the user to easily upload photographsdirectly from his mobile device. Moreover, because people may carrymobile devices such as smartphones with them more often than they carrydedicated cameras, they may have more opportunities to capturephotographs and share them.

The camera of the mobile device may be used to capture images fromwithin a dedicated camera application or from within the socialnetworking application on the mobile device. Images captured by thecamera may be stored in a local storage module within the mobile device,such as the storage module 126, for later use. Images captured by thecamera, or other images stored in the local storage module within themobile device, may be uploaded to the social networking system 130 usingthe social networking application. According to one embodiment of theinvention, the camera application may be initialized separately from thesocial network application, and an option to upload images to the socialnetworking system 130 using the social networking application may beselected from within the camera application. According to anotherembodiment, the camera may be accessed from within the social networkingapplication. Images that are captured using the camera or otherwisestored on the mobile device may be viewed within a single-image view,wherein one image is displayed within the interface of the mobiledevice. A single-image view may refer to a gallery view. Alternatively,images that are captured using the camera or otherwise stored on themobile device may be viewed within a multi-image view, wherein multipleimages are simultaneously displayed in compact form within the interfaceof the mobile device. A multi-image view may refer to a thumbnail view.

FIG. 3A illustrates a camera view 311 within an interface 300 of acamera application on a mobile device 301 in accordance with anembodiment of the invention. In the illustrated example, a user iscapturing an image 310 of a tree from within the camera view 311 using acamera of the mobile device 301. Upon pressing a shutter button 302, theimage 310 is captured and saved to a local storage module within themobile device 301, such as the storage module 126. The user may select agallery option 303 within the interface 300 to view the image 310 orother images stored on the mobile device 301 within a single-image view.Alternatively, the single-image view may be automatically initializedupon capturing the image, with the image 310 displayed within thesingle-image view. According to one embodiment, the single-image viewmay be a gallery view.

FIG. 3B illustrates a gallery view 312 within the interface 300 of thecamera application on the mobile device 301 in accordance with anembodiment of the invention. In the illustrated example, the user isviewing the image 310 within the gallery view 312. The user selects anoption 304 to share the image, which causes a menu 305 of sharingoptions to appear. Among the sharing options is an option 306 to sharethe image 310 via a social network. The user may select this option andinitialize a social networking application for providing the image 310to the social networking system 130.

FIG. 3C illustrates a message compose view 314 within an interface 313of the social networking application on the mobile device 301 inaccordance with an embodiment of the invention. In the illustratedexample, the user is composing a message comprising the image 310 andtext 307 within the message compose view 314. The text 307, “Check outthis tree!,” may accompany the image 310 as a caption or commentary. Theuser may add more images to the message by selecting an add option 309.The user may select a ‘Post’ option 308 and cause the image 310 to beuploaded to the social networking system 130.

According to another embodiment of the invention, the camera may beaccessed from within the social networking application such that animage captured by the camera may be more easily selected for upload tothe social networking system 130. FIG. 4A illustrates a home screen view402 within an interface 400 of the social networking application on amobile device 401 in accordance with an embodiment of the invention. Inthe illustrated example, the user has initialized the social networkingapplication, which displays a news feed within the home screen view 402.From within an options menu 403, the user selects an option 404 toaccess functionality for capturing an image using a camera of the mobiledevice 401. The option 404 may allow the user to use the camera fromwithin the interface 400 of the social networking application.

FIG. 4B illustrates a camera view 414 within the interface 400 of thesocial networking application on the mobile device 401 in accordancewith an embodiment of the invention. In the illustrated example, theuser is capturing an image 405 of an airplane taking off within thecamera view 414. Upon pressing a standard shutter button 406 or a shareshutter button 407, the image 405 is captured and saved to a localstorage module within the mobile device 401, such as the storage module126. If the user selects the share shutter button 407, the image 405 isautomatically designated for sharing and automatically added to amessage or communication without the need to receive any additionalinput commands or instructions from a user to prepare the image 405 forsharing with the message. A single selection prepares the image 405 tobe shared in connection with the message. The camera view 414 remainswithin the interface 400 in order to allow the user to capture moreimages. The number of captured images that has been added to the messagethus far is displayed within a badge 408 accompanying a message composeicon 409. In the illustrated example, two images have thus far beenadded to the message. When the user has finished capturing images forsharing, the user may select the message compose icon 409 and access themessage containing all of the images he has captured using the shareshutter button 407.

FIG. 4C illustrates a message compose view 415 within the interface 400of a social networking application on the mobile device 401 inaccordance with an embodiment of the invention. In the illustratedexample, the user is composing a message including three images 418 andtext 410 within the message compose view 415. The text 410, “Check outthis plane!,” may accompany the three images 418 as a caption orcommentary. The user may add more images to the message by selecting anadd option 412. The user may select a ‘Post’ option 411 and cause thethree images 418 to be uploaded to the social networking system 130.

According to one embodiment of the invention, the user may select agallery option 413 within the interface 400 to view images stored on themobile device 401 within a single-image view. The single-image view maybe a gallery view. FIG. 5A illustrates a gallery view 502 within aninterface 500 of the social networking application on a mobile device501 in accordance with an embodiment of the invention. In theillustrated example, the gallery view 502 displays an image 503 of asunset. The image 503 may have been captured using a camera of themobile device 501 or otherwise stored within the mobile device 501. Theuser may select a check mark option 504 to designate the image 503 forsharing and add it to a message. The user may continue browsing imagesin the gallery view 502 by, for example, swiping across the screen ofthe mobile device 501 using his finger, and designate additional imagesfor sharing by selecting the check mark option 504 and adding them tothe message. According to one embodiment, the user may apply edits tothe currently displayed image 503 by selecting an edit option 507, whichmay activate a photo editing interface similar to the photo editingpanel 207 (as shown in FIG. 2C).

The number of captured images that have been added to the message thusfar is displayed within a badge 505 accompanying a message compose icon506. In the illustrated example, four images have thus far been added tothe message. To remove an image from the message—i.e., to “un-designate”an image for sharing—the user may browse to a designated image withinthe gallery view 502 and de-select the check mark option 504. The usermay delete the image by selecting a delete option 520.

According to one embodiment of the invention, the user may select athumbnail view option 508 within the interface 500 to view images storedon the device within a multi-image view. The multi-image view may be athumbnail view. FIG. 5B illustrates a thumbnail view 509 within theinterface 500 of the social networking application on the mobile device501 in accordance with an embodiment of the invention. The thumbnailview 509 displays images 510, 511, 512, 513, 514. Each of the images510, 511, 512, 513 has a check mark option to designate the image forsharing and add it to a message. The check mark option appears checkedfor images that have been designated for sharing and unchecked forimages that have not been designated for sharing. In the illustratedexample, the images 510, 511, 512, and 513 have been designated forsharing, and the image 514 has not been designated for sharing.According to an embodiment, if the number of images exceeds theavailable space within the thumbnail view 509, the additional images maybe seen on a next page (not pictured) that the user may access by, forexample, swiping his finger across the screen of the mobile device 501.The number of images that has been added to the message thus far isdisplayed within the badge 505 accompanying the message compose icon506. In the illustrated example, four images have thus far been added tothe message. The user may return to the gallery view 502 by selecting areturn option 515.

When the user has finished designating images for sharing, the user mayselect the message compose icon 506 within the gallery view 502 or thethumbnail view 509 and access the message containing the images he hasdesignated for sharing. If the user selects the message compose icon 506from within the gallery view 502 without having designated any imagesfor sharing, the image that is currently displayed may be implicitlydesignated for sharing and automatically added to the message. If theuser selects the message compose icon 506 from within the thumbnail view509 without having designated any images for sharing, the first image inthe upper left of the thumbnail view 509 may be implicitly designatedfor sharing and automatically added to the message.

FIG. 5C illustrates a message compose view 521 within the interface 500of the social networking application on the mobile device 501 inaccordance with an embodiment of the invention. In the illustratedexample, the user is composing a message including four images 518 andtext 516 within the message compose view 521. The text 516, “Greatpics!,” may accompany the four images 518 as a caption or commentary.The user may add more images to the message by selecting an add option519. The user may select a ‘Post’ option 517 and cause the three images518 to be uploaded to the social networking system 130.

FIG. 6 illustrates a process 600 for selecting multiple images inaccordance with an embodiment of the invention. At block 601, the userdevice 110 receives an image. The image may have been captured fromwithin a dedicated camera application or a social networking applicationusing a camera built in to the user device 110. Alternatively, the imagemay have been received by the user device 110 from another source. Theimage may be stored in the storage module 126 within the user device110. At block 602, the user device 110 receives a designation of theimage for sharing. The designation may be received from within a cameraview based on a user selection of, for example, a share shutter option.Alternatively, the designation may be received from within asingle-image view such as a gallery view based on a user selection of,for example, a check mark option. At block 603, the user device 110automatically adds the image to a communication without the need toreceive any additional input or instructions from a user of the userdevice 110. At block 604, the user device 110 provides the communicationto the social networking system 130. The process 600 may be performed inwhole or in part by the image processing module 118, the storage module126, or other modules of the user device 110.

According to one embodiment of the invention, the user may receive avisual indication when an image is designated for sharing. Although thenumber of images designated for sharing may be displayed within a badgeicon accompanying a message compose option, the user may not notice anincrement in the number within the badge upon designating the image forsharing. Because many mobile devices accept user input via touchscreens,it may sometimes be difficult to determine whether the touchscreen hasdetected a selection or not. This may be the case if the user's fingermakes accidental contact with the touchscreen and the touchscreendetects a selection that the user did not intend, or if the user intendsto make a selection but the touchscreen does not detect the selectionbecause the user's finger did not make close enough contact with thetouchscreen. Accordingly, it may be desirable to provide the user with aconfirmation of his selection of the image in the form of an animation.

FIG. 7A illustrates a camera view 702 within an interface 700 of asocial networking application on a mobile device 701 in accordance withan embodiment of the invention. To facilitate illustration, an arrow 704is shown proceeding from the center of the camera view 702, indicated bya focus frame 703, to a message compose option 705. The arrow 704indicates that a visual animation including a movement from the centerof the camera view 702 to the message compose option 705 is displayedwhen a user captures the image 717 and designates the image 717 forsharing by selecting a share shutter button 716. The number within abadge 706 accompanying the message compose option 705 increments toreflect the addition of the image 717 to a message.

FIG. 7B illustrates a gallery view 714 within the interface 700 of asocial networking application on the mobile device 701 in accordancewith an embodiment of the invention. To facilitate illustration, anarrow 708 is shown proceeding from the center of the gallery view 714 toa message compose option 709. The arrow 708 indicates that a visualanimation including a movement from the center of the gallery view 714to the message compose option 709 is displayed when a user designates animage 718 for sharing by selecting a check mark option 707. The numberwithin a badge 710 accompanying the message compose option 709increments to reflect the addition of the image 718 to a message.

FIG. 7C illustrates a thumbnail view 715 within the interface 700 of asocial networking application on the mobile device 701 in accordancewith an embodiment of the invention. To facilitate illustration, anarrow 711 is shown proceeding from the image 710 to a message composeoption 712. The arrow 711 indicates that a visual animation including amovement from the image 710 to the message compose option 712 isdisplayed when a user designates an image 710 for sharing by selectingthe check mark option within the image 710. The number within a badge713 accompanying the message compose option 712 increments to reflectthe addition of the image 710 to a message.

The animation indicated by the arrows in FIGS. 7A, 7B, and 7C may appearin many forms. According to an embodiment, the animation may include aminiaturization effect in which a copy of the image designated forsharing is displayed and appears to progressively shrink as it proceedsfrom a first location on the screen towards a second location on thescreen. FIG. 7D illustrates a miniaturization effect in a gallery view722 within an interface 720 of a social networking application on amobile device 721 in accordance with an embodiment of the invention. Inthe illustrated example, a user designates an image 723 for sharing byselecting a check mark option 724. Upon the user selecting the checkmark option 724, a copy 725 of the image 723 is displayed. The copy 725is initially centered over the gallery view 722, but gradually shrinks,or miniaturizes, and proceeds towards a message compose icon 726. As theanimation completes, the copy 725 has shrunk to the point that it hasdisappeared, producing a visual effect indicating that the image 723 hasbeen designated for sharing and added to a message. In addition, anumber within a badge 727 accompanying the message compose icon 726increments from zero to one. After the animation concludes, the image723 may be displayed in its original form as shown.

FIG. 8 illustrates a process 800 for displaying an animation to indicatea user designation of an image for sharing. At block 801, a user device110 receives an image. The image may have been captured from within adedicated camera application or a social networking application using acamera built in to the user device 110. Alternatively, the image mayhave been received by the user device 110 from another source. The imagemay be stored in the storage module 126 within the user device 110. Atblock 802, the user device 110 receives a designation of the image forsharing from within a view. The designation may be received from withina camera view via a user selection of, for example, a share shutteroption. Alternatively, the designation may be received from within asingle-image view such as a gallery view via a user selection of, forexample, a check mark option. Alternatively, the designation may bereceived from within a multi-image view such as a thumbnail view via auser selection of, for example, an image to be shared. At block 803, theuser device 110 displays an animation indicating that the image has beendesignated for sharing. The animation may comprise a miniaturizationeffect, or any other visual element. The miniaturization effect mayinclude displaying a copy of the image and gradually shrinking, orminiaturizing, the copy as it proceeds from a first location within theview to a second location within the view. The first location may be anicon representing the option used to designate the image for sharing.The second location may be an icon representing a message composeoption. At block 804, the user device 110 provides the image to thesocial networking system 130. The process 800 may be performed in wholeor in part by the image processing module 118, the storage module 126,or any other module of the user device 110.

Although the preceding examples have been described with reference tomobile devices, the embodiments described herein may be implemented onany type of user device 110. On a device with a touchscreen, such as amobile device or a tablet device, a user selection of an option may bereceived via the user touching a position on the touchscreencorresponding to an icon representing the option that the user intendsto select. On a device with an input mechanism such as a pointingdevice, a user selection of an option may be received via the usermanipulating the mechanism to move a pointer or other visual elementinto a position corresponding to an icon representing the option thatthe user intends to select, and pressing a button. A pointing device mayrefer to a mouse, a trackball device, or any mechanism for manipulatinga pointer on a screen. In addition, selection of an option may betriggered by any other form of user input to the user device 110, suchas a voice command.

Hardware Implementation

The foregoing processes and features can be implemented by a widevariety of machine and computer system architectures and in a widevariety of network and computing environments. FIG. 9 illustrates anexample of a computer system 900 that may be used to implement one ormore of the embodiments described herein. The computer system 900includes sets of instructions for causing the computer system 900 toperform the processes and features discussed herein. The computer system900 may be connected (e.g., networked) to other machines. In a networkeddeployment, the computer system 900 may operate in the capacity of aserver machine or a client machine in a client-server networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. In an embodiment of the invention, the computersystem 900 may be the social networking system 130, the user device 110,and the external system 120, or a component thereof. In an embodiment ofthe invention, the computer system 900 may be one server among many thatconstitutes all or part of the social networking system 130.

The computer system 900 includes a processor 902, a cache 904, and oneor more executable modules and drivers, stored on a computer-readablemedium, directed to the processes and features described herein.Additionally, the computer system 900 includes a high performanceinput/output (I/O) bus 906 and a standard I/O bus 908. A host bridge 910couples processor 902 to the high performance I/O bus 906, whereas I/Obus bridge 912 couples the two buses 906 and 908 to each other. A systemmemory 914 and one or more network interfaces 916 couple to highperformance I/O bus 906. The computer system 900 may further includevideo memory and a display device coupled to the video memory (notshown). Mass storage 918 and I/O ports 920 couple to the standard I/Obus 908. The computer system 900 may optionally include a keyboard andpointing device, a display device, or other input/output devices (notshown) coupled to the standard I/O bus 908. Collectively, these elementsare intended to represent a broad category of computer hardware systems,including but not limited to computer systems based on thex86-compatible processors manufactured by Intel Corporation of SantaClara, California, and the x86-compatible processors manufactured byAdvanced Micro Devices (AMD), Inc., of Sunnyvale, Calif., as well as anyother suitable processor.

An operating system manages and controls the operation of the computersystem 900, including the input and output of data to and from softwareapplications (not shown). The operating system provides an interfacebetween the software applications being executed on the system and thehardware components of the system. Any suitable operating system may beused, such as the LINUX Operating System, the Apple Macintosh OperatingSystem, available from Apple Computer Inc. of Cupertino, Calif., UNIXoperating systems, Microsoft® Windows® operating systems, BSD operatingsystems, and the like. Other implementations are possible.

The elements of the computer system 900 are described in greater detailbelow. In particular, the network interface 916 provides communicationbetween the computer system 900 and any of a wide range of networks,such as an Ethernet (e.g., IEEE 802.3) network, a backplane, etc. Themass storage 918 provides permanent storage for the data and programminginstructions to perform the above-described processes and featuresimplemented by the respective computing systems identified above,whereas the system memory 914 (e.g., DRAM) provides temporary storagefor the data and programming instructions when executed by the processor902. The I/O ports 920 may be one or more serial and/or parallelcommunication ports that provide communication between additionalperipheral devices, which may be coupled to the computer system 900.

The computer system 900 may include a variety of system architectures,and various components of the computer system 900 may be rearranged. Forexample, the cache 904 may be on-chip with processor 902. Alternatively,the cache 904 and the processor 902 may be packed together as a“processor module”, with processor 902 being referred to as the“processor core”. Furthermore, certain embodiments of the invention mayneither require nor include all of the above components. For example,peripheral devices coupled to the standard I/O bus 908 may couple to thehigh performance I/O bus 906. In addition, in some embodiments, only asingle bus may exist, with the components of the computer system 900being coupled to the single bus. Furthermore, the computer system 900may include additional components, such as additional processors,storage devices, or memories.

In general, the processes and features described herein may beimplemented as part of an operating system or a specific application,component, program, object, module, or series of instructions referredto as “programs”. For example, one or more programs may be used toexecute specific processes described herein. The programs typicallycomprise one or more instructions in various memory and storage devicesin the computer system 900 that, when read and executed by one or moreprocessors, cause the computer system 900 to perform operations toexecute the processes and features described herein. The processes andfeatures described herein may be implemented in software, firmware,hardware (e.g., an application specific integrated circuit), or anycombination thereof.

In one implementation, the processes and features described herein areimplemented as a series of executable modules run by the computer system900, individually or collectively in a distributed computingenvironment. The foregoing modules may be realized by hardware,executable modules stored on a computer-readable medium (ormachine-readable medium), or a combination of both. For example, themodules may comprise a plurality or series of instructions to beexecuted by a processor in a hardware system, such as the processor 902.Initially, the series of instructions may be stored on a storage device,such as the mass storage 918. However, the series of instructions can bestored on any suitable computer readable storage medium. Furthermore,the series of instructions need not be stored locally, and could bereceived from a remote storage device, such as a server on a network,via the network interface 916. The instructions are copied from thestorage device, such as the mass storage 918, into the system memory 914and then accessed and executed by the processor 902.

Examples of computer-readable media include, but are not limited to,recordable type media such as volatile and non-volatile memory devices;solid state memories; floppy and other removable disks; hard diskdrives; magnetic media; optical disks (e.g., Compact Disk Read-OnlyMemory (CD ROMS), Digital Versatile Disks (DVDs)); other similarnon-transitory (or transitory), tangible (or non-tangible) storagemedium; or any type of medium suitable for storing, encoding, orcarrying a series of instructions for execution by the computer system900 to perform any one or more of the processes and features describedherein.

For purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the description. It will beapparent, however, to one skilled in the art that embodiments of thedisclosure can be practiced without these specific details. In someinstances, modules, structures, processes, features, and devices areshown in block diagram form in order to avoid obscuring the description.In other instances, functional block diagrams and flow diagrams areshown to represent data and logic flows. The components of blockdiagrams and flow diagrams (e.g., modules, blocks, structures, devices,features, etc.) may be variously combined, separated, removed,reordered, and replaced in a manner other than as expressly describedand depicted herein.

Reference in this specification to “one embodiment”, “an embodiment”,“other embodiments”, “one series of embodiments”, or the like means thata particular feature, design, structure, or characteristic described inconnection with the embodiment is included in at least one embodiment ofthe disclosure. The appearances of, for example, the phrase “in oneembodiment” or “in an embodiment” in various places in the specificationare not necessarily all referring to the same embodiment, nor areseparate or alternative embodiments mutually exclusive of otherembodiments. Moreover, whether or not there is express reference to an“embodiment” or the like, various features are described, which may bevariously combined and included in some embodiments, but also variouslyomitted in other embodiments. Similarly, various features are describedthat may be preferences or requirements for some embodiments, but notother embodiments.

The language used herein has been principally selected for readabilityand instructional purposes, and it may not have been selected todelineate or circumscribe the inventive subject matter. It is thereforeintended that the scope of the invention be limited not by this detaileddescription, but rather by any claims that issue on an application basedhereon. Accordingly, the disclosure of the embodiments of the inventionis intended to be illustrative, but not limiting, of the scope of theinvention, which is set forth in the following claims.

What is claimed:
 1. A computer implemented method comprising: receiving,by a computer system, a designation of a first image for sharing fromwithin a view; and displaying, by the computer system, a first animationindicating that the first image has been designated for sharing byminiaturizing a copy of the first image while the copy of the firstimage proceeds from a first location within the view to a secondlocation within the view.
 2. The computer implemented method of claim 1,wherein the displaying comprises reducing dimensions of the copy of thefirst image.
 3. The computer implemented method of claim 1, wherein thefirst location is different from the second location.
 4. The computerimplemented method of claim 1, wherein the first location is associatedwith at least one of a center of the view and an option to designate thefirst image for sharing.
 5. The computer implemented method of claim 3,wherein the second location is associated with a message compose option.6. The computer implemented method of claim 1, wherein the view is asingle-image view.
 7. The computer implemented method of claim 6,wherein the single-image view is a gallery view.
 8. The computerimplemented method of claim 1, wherein the view is a multi-image view.9. The computer implemented method of claim 8, wherein the multi-imageview is a thumbnail view.
 10. The computer implemented method of claim1, further comprising displaying a reference indicative of a number ofimages designated for sharing.
 11. The computer implemented method ofclaim 1, further comprising incrementing a number for display when anadditional image is designated for sharing.
 12. The computer implementedmethod of claim 1, further comprising receiving a designation of asecond image.
 13. The computer implemented method of claim 12, furthercomprising displaying a second animation indicating that the secondimage has been designated for sharing.
 14. The computer implementedmethod of claim 1, further comprising receiving the first image from acamera.
 15. The computer implemented method of claim 1, wherein thereceiving the designation of the first image for sharing is based on auser selection of a check mark option.
 16. The computer implementedmethod of claim 1, wherein the receiving the designation of the firstimage for sharing is based on a user selection of a share shutteroption.
 17. The computer implemented method of claim 1, wherein thereceiving the designation of the first image for sharing is based on aninput to a touchscreen.
 18. The computer implemented method of claim 1,wherein the receiving the designation of the first image for sharing isbased on a voice command.
 19. A system comprising: at least oneprocessor; and a memory storing instructions configured to instruct theat least one processor to perform: receiving a designation of a firstimage for sharing from within a view; and displaying a first animationindicating that the first image has been designated for sharing byminiaturizing a copy of the first image while the copy of the firstimage proceeds from a first location within the view to a secondlocation within the view.
 20. A computer storage medium storingcomputer-executable instructions that, when executed, cause a computersystem to perform a computer-implemented method comprising: receiving adesignation of a first image for sharing from within a view; anddisplaying a first animation indicating that the first image has beendesignated for sharing by miniaturizing a copy of the first image whilethe copy of the first image proceeds from a first location within theview to a second location within the view.